package com.yidu.t299.service.chr;

import com.yidu.t299.domain.chr.Grade;

import java.util.List;

/**
 * @author twj
 * @version 1.0.0
 */
public interface GradeBiz {
    /**
     * 根据主键删除成绩信息
     * @param gradeId 主键
     * @return 影响的行数(1:成功)
     */
    int deleteByPrimaryKey(Integer gradeId);

    /**
     * 添加成绩信息，因为实体类不能对应，所以要分开传参
     * @param gradeId 成绩编号
     * @param studentId 学员编号
     * @param lessonId 课程编号
     * @param lessonGrade 课程成绩
     * @return 影响的行数(1:成功)
     */
    int insert(Integer gradeId,Integer studentId,Integer lessonId,Integer lessonGrade);

    /**
     * 按主键查询
     * @param gradeId 主键
     * @return 成绩对象
     */
    Grade selectByPrimaryKey(Integer gradeId);

    /**
     * 按条件分页查询创建数据集合
     * 多表关联的关系： grade -> lesson & student_manage -> school & class
     *
     * @param rows      每页的行数
     * @param page      页码
     * @param condition 条件参数
     * @return 成绩对象集合
     */
    List<Grade> selectByPage(int rows, int page, String condition);

    /**
     * 按条件查询grade表中数据行数
     *
     * @param condition 条件参数
     * @return 数据行数
     */
    int selectCount(String condition);

    /**
     * 修改成绩信息，因为实体类不能对应，所以要分开传参
     * @param gradeId 成绩编号
     * @param studentId 学员编号
     * @param lessonId 课程编号
     * @param lessonGrade 课程成绩
     * @return 影响的行数(1:成功)
     */
    int updateByPrimaryKey(Integer gradeId,Integer studentId,Integer lessonId,Integer lessonGrade);


    /**
     * 根据实体类各属性值生成条件字符串
     * @param studentName 学员姓名
     * @param schoolName 校区名称
     * @return 条件字符串
     */
    String getCondition(String studentName,String schoolName);
}
